home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
HAM_RAD
/
PROPAGAT
/
1004A.ZIP
/
TROPO.BAS
< prev
next >
Wrap
BASIC Source File
|
1987-05-12
|
5KB
|
149 lines
10 REM TROPOSCATTER PATH LOSS CALCULATOR
20 REM BY R.P.BLACKWELL, G8IZV
30 REM BASED ON THE WORK OF G3YGF
40 DIM H1(2),H2(2),D1(2),A(2),A$(2),B(2)
50 R1=8497 :PI=3.14151
60 DEF FNX(X)=LOG(X)*.43432
70 DEF FNY(X)= INT(10*X+.5)/10
80 N=1:GOSUB 1400: REM Clear all parameters,
90 N=2:GOSUB 1400: REM for both stations.
100 PRINT: PRINT TAB(10);"TROPOSCATTER PATH LOSS CALCULATOR":PRINT
110 N=1:GOSUB 630
120 N=2:GOSUB 630
130 PRINT:PRINT "Frequency of operation (MHz) ";
140 INPUT F
150 PRINT
160 IF F<=30 THEN PRINT "Too low!":PRINT CHR$(7):GOTO 130
170 REM SCATTER ANGLE CALCULATION
180 B0=D*180/(R1*PI)
190 N=1:GOSUB 1110
200 N=2:GOSUB 1110
210 IF(D<=D1(1))AND(D<=D1(2)) THEN P$="Line-of-sight" ELSE P$="Troposcatter"
220 B=B0+B(1)+B(2)
230 REM FREE SPACE PATH LOSS
240 L1=32.5+20*FNX(D)+20*FNX(F)
250 IF P$="Line-of-sight" THEN L2=0:L3=0:GOTO 310
260 L2=21+10*B+10*FNX(F): REM scattering loss
270 REM aperture coupling loss
280 A1=SQR(A(1)*A(2))
290 L3=(2*B/A1)+2
300 REM total path loss
310 L0=L1+L2+L3
320 PRINT " ";P$;" path ";A$(1);" to ";A$(2)
330 PRINT " for a frequency of ";F;" MHz."
340 PRINT:PRINT " Path loss ";FNY(L0);" dB."
350 IF P$="Line-of-sight" GOTO 390 ELSE PRINT
360 PRINT "Station ";A$(1);" loss contribution ";FNY(10*B(1));" dB."
370 PRINT "Station ";A$(2);" loss contribution ";FNY(10*B(2));" dB."
380 PRINT:PRINT " Scattering angle ";FNY(B);" degrees."
390 PRINT:INPUT "Press RETURN to continue",X$
400 PRINT:PRINT
410 PRINT "In the next run, do you wish:"
420 PRINT TAB(23);"1 to alter everything"
430 PRINT TAB(23);"2 to alter station A parameters"
440 PRINT TAB(23);"3 to alter station B parameters"
450 PRINT TAB(23);"4 to correct troposcatter path loss for refraction"
460 PRINT TAB(23);"5 to change frequency, and also antenna beamwidths"
470 PRINT TAB(20);"or 6 to quit"
480 PRINT:INPUT"What number";X
490 IF X=1 THEN 90
500 IF X=2 THEN 1070
510 IF X=3 THEN 1080
520 IF X=4 THEN 560
530 IF X=5 THEN 990
540 IF X=6 THEN 1470
550 PRINT CHR$(7):GOTO 400
560 IF P$="Line-of-sight" THEN PRINT CHR$(7);"Troposcatter only!":GOTO 390:ELSE PRINT "N is presently ";N;" New N-value";
570 INPUT N
580 L4=.2*(N-310)
590 PRINT " Correction is ";FNY(L4);" dB."
600 PRINT " The corrected path loss is ";FNY(L0+L4);" dB."
610 GOTO 390
620 PRINT CHR$(7);"Can't do that!"
630 PRINT: REM Input/update station parameters.
640 IF N=1 THEN TT$="A"
650 IF N=2 THEN TT$="B"
660 PRINT "Station ";TT$; " identifier ";A$(N);
670 IF A$(N)<>" " THEN 690
680 INPUT A$(N)
690 PRINT:PRINT " Height of station (m asl) ";
700 IF H1(N)=0 THEN 720
710 PRINT H1(N):GOTO 730
720 INPUT H1(N)
730 PRINT " Height of obstruction (m asl) ";
740 IF H2(N)=0 THEN 760
750 PRINT H2(N):GOTO 770
760 INPUT H2(N)
770 PRINT " Distance to obstruction (km) ";
780 IF D1(N)=0 THEN 800
790 PRINT D1(N):GOTO 810
800 INPUT D1(N)
810 PRINT " Antenna vertical beamwidth (degrees) ";
820 IF A(N)=0 THEN 840
830 PRINT A(N) :GOTO 850
840 INPUT A(N)
850 IF N=1 THEN 910
860 PRINT:PRINT " Distance between stations (km) ";
870 IF D=0 THEN 890
880 PRINT D:GOTO 910
890 INPUT D
900 REM ZERO TRAP
910 IF A(N)=0 THEN 620
920 IF H1(N)=0 THEN 620
930 IF H2(N)=0 THEN 620
940 IF D1(N)=0 THEN 620
950 IF N=1 THEN RETURN
960 IF D=0 THEN 620
970 RETURN
980 REM CHANGE FREQ.AND ANT. BEAMWIDTHS
990 PRINT:PRINT"New frequency (MHz)";
1000 INPUT F
1010 PRINT:PRINT "Station ";A$(1);" vertical beamwidth (degrees)";
1020 INPUT A(1)
1030 PRINT "Station ";A$(2);" vertical beamwidth (degrees)";
1040 INPUT A(2)
1050 GOTO 150
1060 REM CHANGE STATION PARAMETERS
1070 N=1:GOTO 1090
1080 N=2
1090 GOSUB 1160: GOSUB 630: GOTO 150
1100 REM CALCULATES STATION ANGLES
1110 H3=(H2(N)-H1(N))/(D1(N)*1000)
1120 B(N)=(H3-(D1(N)/(2*R1)))
1130 B(N)=B(N)*180/PI
1140 RETURN
1150 REM PARAMS TO CHANGE MADE=0
1160 PRINT:PRINT:PRINT "Which station parameter(s) will you want to to change in the next run?":PRINT
1170 PRINT TAB(23);"1 Station height "
1180 PRINT TAB(23);"2 Obstruction height "
1190 PRINT TAB(23);"3 Obstruction distance"
1200 PRINT TAB(23);"4 Antenna beamwidth"
1210 PRINT TAB(23);"5 Station identifier"
1220 IF N=2 THEN PRINT TAB(23);"6 Distance A to B"
1230 PRINT TAB(20);"or 7 All parameters"
1240 PRINT:GOTO 1250
1250 INPUT "Number of parameter to change (or 8 = ready to run) : ";X
1260 IF X<1 THEN 1480
1270 IF X>8 THEN 1480
1280 IF X=8 THEN RETURN
1290 IF X=7 THEN GOSUB 1400
1300 IF X=6 THEN 1370
1310 IF X=5 THEN A$(N)=" "
1320 IF X=4 THEN A(N)=0
1330 IF X=3 THEN D1(N)=0
1340 IF X=2 THEN H2(N)=0
1350 IF X=1 THEN H1(N)=0
1360 GOTO 1250
1370 IF N=1 THEN PRINT"You can't do that!":PRINT CHR$(7)
1380 IF N=1 THEN GOTO 1480
1390 D=0:GOTO 1480
1400 REM RESET ALL STATION PARAMETERS
1410 D1(N)=0
1420 H1(N)=0:H2(N)=0:A(N)=0
1430 A$(N)=" "
1440 IF N=2 THEN D=0
1450 RETURN
1460 REM ERROR TRAP
1470 END
1480 :